/*
 *  test.h
 *  bgsubtraction
 *
 *  Created by a1gucis on 3/17/09.
 *  Copyright 2009 __MyCompanyName__. All rights reserved.
 *
 */

#ifndef TEST_H
#define TEST_H
#define FRAMES_TO_LEARN 25
#define FRAME_HEIGHT 480
#define FRAME_WIDTH 640

#include "systeminclude.h"
#include "codebookmodel.h"
#include "fgfiltering.h"
#include "em.h"
#include "mrf.h"
#include "humanmodel.h"
#include "bodypart.h"
#include "head.h"
#include "upperbody.h"
#include "fullbody.h"
#include "clusterfusion.h"
#include "blob.h"
#include "idgenerator.h"
#include "contourpixel.h"
#include "kmeans.h"
#include "quickhull.h"
#include "jarvismarch.h"
#include <iostream>
#include <math.h>
using namespace std;
class Test{
public:
	static void Run();
	static void Run2();
	static void Run3();
	static void Run4(); //test the BodyPart class;
	static void Run5(); //test the Head class
	static void Run6(); //test the ClusterFusion class
	static void Run7(); //testing the integration
	static void Run8(); //testing the cluster fusion using contour detection
	static void Run9(); //testing fullBody clustering
	static void Run10(); //testing fullBody with video;
	static void Run11(); //testing Blob class;
	static void Run12(); //testing vector class.
	static void Run13(); //testing the HLS image
	static void Run14(); //testing my Kmeans class
	static void Run15(); //testing the quikchull class;
	//draws the blob inside image.
	static void drawBlob(IplImage *image, Blob *blob, int color);
	
	//draws all the blobs inside image.
	static void drawBlobs(IplImage *image, vector<Blob *> *blobVector);
	
	//draws the blob and it's neighbour blobs
	static void drawBlobAndNeighbours(IplImage *image, Blob *blob, int color);
	
	//prints the color value of image at row, col
	static void printColor(IplImage *image, int row, int col);
	
	//prints the value at row, col
	static void printValue32F(IplImage *image, int row, int col);
	
	static void printValue8U(IplImage *image, int row, int col);
	
	//draws the centroid of the blob
	static void drawCentroid(IplImage *image, Blob *blob, int color);
	
	//draws the contours of the blob
	static void drawContours(IplImage *image, Blob *blob, int color);
};

#endif